package Java.BlackHorse.Function;

import java.util.ArrayList;
import java.util.Collections;
import java.util.function.Function;

public class FunctionDemo2 {
    /*
    * 方法引用（引用静态方法）
    * 格式
    *   类：：方法名
    *
    *  方法引用：
        1. 引用处需是函数式接口

        2. 被引用的方法需要存在
        3. 被引用方法的形参和返回值需跟抽象方法的返回值保持一致
        4. 被引用的方法的功能需满足当前需求
    * */
    public static void main(String[] args) {
       /*
       需求：
        集合中有以下数字，要求把他们都变成 int 类型
        "1","2","3","4","5"
        */
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"1","2","3","4","5");

        //转换数据类型 常规方法
       /*
        list.stream().map(new Function<String, Integer>() {
            @Override
            public Integer apply(String s) {
                return Integer.parseInt(s);
            }
        }).forEach(s -> System.out.println(s));
        */

        /*
        静态方法
        public static int parseInt(String s) throws NumberFormatException {
            return parseInt(s, 10);
        }
        */
        list.stream().map(Integer::parseInt).forEach(s -> System.out.println(s));

    }
}
